//965. 单值二叉树
// 使用前序遍历思想 + 递归
#include <stdio.h>
#include <stdbool.h>

struct TreeNode {
	int val;
	struct TreeNode* left;
	struct TreeNode* right;
};

bool isUnivalTree(struct TreeNode* root) {
	if (NULL == root)
		return true;

	if (NULL != root->left && root->val != root->left->val)//注意：先判断是否存在左节点,
		return false;										//这样就不会存在空指针异常的隐患
	if (NULL != root->right && root->val != root->right->val)//注意：先判断是否存在右节点
		return false;										//这样就不会存在空指针异常的隐患

	return isUnivalTree(root->left)
		&& isUnivalTree(root->right);
}